#include <iostream>
#include <assert.h>
#include <map>

#include "ioccontainer.h"
class TestBase
{
public:
    virtual  void show() = 0;
};

class TestIoc : public TestBase
{
public:
    TestIoc(int a, const std::string& msg)
    {

    }
    void show()
    {
        std::cout << "this is TestIoc" << std::endl;
    }
};

int main()
{
    IocContainerAgent::get_instance().RegisterType<TestBase, TestIoc, int, std::string>("testIoc");

    TestBase* pTest = IocContainerAgent::get_instance().Resolve<TestBase>("testIoc", 10, std::string("msg"));
    pTest->show();
    return 1;
}